//
//  MPCLabel.h
//  Pods
//
//  Created by HouGeng on 17/7/22.
//
//

#import <UIKit/UIKit.h>

@interface MPCLabel : UILabel


/// 扩展属性，携带字典参数
@property (nonatomic, strong) NSMutableDictionary *mdicParam;


#pragma mark - ********************************** 初始化方法 工厂方法 *********************************


/**
 创建MPCLabel
 @param frame 设置frame
 @return MPCLabel
 */
+ (MPCLabel *)getWithFrame:(CGRect)frame;

/**
 创建MPCLabel
 @param frame 设置frame
 @param strText 文字
 @param colorText 文字颜色
 @param font 字号
 @return MPCLabel
 */
+ (MPCLabel *)getWithFrame:(CGRect)frame
                     text:(NSString *)strText
                textColor:(UIColor *)colorText
                 textFont:(UIFont *)font;

/**
 创建MPCLabel
 @param frame 设置frame
 @param strText 文字
 @param colorText 文字颜色
 @param font 字号
 @param textAlignment 对齐方式
 @return MPCLabel
 */
+ (MPCLabel *)getWithFrame:(CGRect)frame
                     text:(NSString *)strText
                textColor:(UIColor *)colorText
                 textFont:(UIFont *)font
            textAlignment:(NSTextAlignment)textAlignment;


#pragma mark - ********************************** 初始化方法 实例方法 *********************************


/**
 创建MPCLabel
 @param frame 设置frame
 @param strText 文字
 @param colorText 文字颜色
 @return MPCLabel
 */
- (id)initWithFrame:(CGRect)frame
               text:(NSString *)strText
          textColor:(UIColor *)colorText
           textFont:(UIFont *)font;

/**
 创建MPCLabel
 @param frame 设置frame
 @param strText 文字
 @param colorText 文字颜色
 @param font 字号
 @param textAlignment 对齐方式
 @return MPCLabel
 */
- (id)initWithFrame:(CGRect)frame
               text:(NSString *)strText
          textColor:(UIColor *)colorText
           textFont:(UIFont *)font
      textAlignment:(NSTextAlignment)textAlignment;


#pragma mark - *********************************** 属性设置 实例方法 **********************************

/**
 给某一范围内的文字设置颜色和字体
 @param colorText 颜色
 @param font 字体字号
 @param range 设置的范围
 */
- (void)setTextColor:(UIColor *)colorText textFont:(UIFont *)font range:(NSRange)range;

/**
 给某一范围设置背景色
 @param colorText 颜色
 @param range 设置的范围
 */
- (void)setBgColor:(UIColor *)colorBg textColor:(UIColor *)colorText range:(NSRange)range;

/**
 设置label中所有文字的行间距
 @param fltLineSpace 行间距
 */
- (void)setLineSpace:(CGFloat)fltLineSpace;

/**
 给某一范围内的文字设置点击事件、普通颜色、高亮颜色、普通背景色、高亮背景色，高亮颜色可以不传，
 普通颜色不传时使用默认颜色（文本为黑色，背景为透明色)
 @param target 点击事件的target
 @param selAction 点击事件的方法
 @param colorNormalText 默认颜色
 @param colorHighLightText 高亮颜色
 @param colorNormalBg 默认背景色
 @param colorHighLightBg 高亮背景色
 @param range 范围
 */
- (void)addTarget:(id)target
           action:(SEL)selAction
  normalTextColor:(UIColor *)colorNormalText
highLightTextColor:(UIColor *)colorHighLightText
    normalBgColor:(UIColor *)colorNormalBg
 highLightBgColor:(UIColor *)colorHighLightBg
            range:(NSRange)range;

- (void)removeTarget:(id)target
              action:(SEL)selAction;

- (void)removeAllTargets;

/**
 设置圆角 4个角全部进行圆角操作
 @param cornerRadius 圆角半径
 */
- (void)setCornerRadiusForAll:(float)cornerRadius;

/**
 设置圆角 指定某个角进行圆角操作
 @param corners 要做圆角操作的角
 @param cornerRadii 圆角半径
 */
- (void)setCornerRadiusForPart:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;


@end


